// Wprowadzenie do liczenia referencji

#import <Foundation/Foundation.h>

@interface ClassA: NSObject
{
    NSString *str;
}

-(void) setStr: (NSString *) s;
-(NSString *) str;
@end

@implementation ClassA
-(void) setStr: (NSString *) s
{
    str = s;
}

-(NSString *) str
{
    return str;
}
@end

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSMutableString  *myStr = [NSMutableString stringWithString: @"acuch "];
    ClassA   *myA = [[ClassA alloc] init];

    NSLog (@"Liczba referencji do obiektu myStr: %lx", [myStr retainCount]);

    [myA setStr: myStr];
    NSLog (@"Liczba referencji do obiektu myStr: %lx", [myStr retainCount]);

    [myA release];
    [pool drain];
    return 0;
}